﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using BibliotecaProjeto.funcionario;

namespace BibliotecaProjeto.administrador
{
    public class DadosAdministrador: persistencia.ConexaoSqlServer
    {

        #region Atributos
        private string instSql;
        #endregion

        #region Construtores
        /// <summary>
        /// Construtor da Classe
        /// </summary>
        #endregion
        public DadosAdministrador() { }

        public Funcionario funcionario = new Funcionario();

        #region Métodos
        #region conexão com select
        public List<Administrador> selectAdministrador()
        {
            List<Administrador> retorno = new List<Administrador>();
            try
            {
               abrirConexao();
                SqlCommand cmd = new SqlCommand("SELECT matricula,nome,login,senha FROM administrador ", conBD);
                SqlDataReader DbReader = cmd.ExecuteReader();

                while (DbReader.Read())
                {
                    Administrador a = new Administrador();
                    a.matricula = DbReader.GetInt32(DbReader.GetOrdinal("matricula"));
                    a.nome = DbReader.GetString(DbReader.GetOrdinal("nome"));
                    a.login = DbReader.GetString(DbReader.GetOrdinal("login"));
                    a.senha = DbReader.GetString(DbReader.GetOrdinal("senha"));
                    retorno.Add(a);
                }

                DbReader.Close();
                cmd.Dispose();
                fecharConexao();;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao conectar e selecionar " + ex.Message);
            }
            return retorno;
        }
        #endregion


        public void cadastrar(Administrador administrador)
        {
            try
            {
               abrirConexao();
                instSql = "insert into administrador (matricula,nome,login,senha) values (" + funcionario.matricula + ",'" + funcionario.nome + "','" + administrador.login + "', '" + administrador.senha + "');";
                fecharConexao();;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao inserir administrador: " + ex.Message);
            }
        }

        public void atualizar(Administrador administrador)
        {
            try
            {
               abrirConexao();
                instSql = "update administrador set login = '" + administrador.login + "', senha = '" + administrador.senha + "' where matricula = '" + funcionario.matricula + "'";
                fecharConexao();;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar administrador: " + ex.Message);
            }
        }

        public void remover(Administrador administrador)
        {
            try
            {
               abrirConexao();
                instSql = "delete from administrador where matricula = '" + funcionario.matricula + "'";
                fecharConexao();;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao remover administrador: " + ex.Message);
            }
        }

        #endregion
    }
}
